অ্যাপাচি নিফাই (Apache NiFi) একটি শক্তিশালী ডেটা ইন্টিগ্রেশন প্ল্যাটফর্ম যা বিভিন্ন ডেটা উৎসের মধ্যে ডেটা স্থানান্তর ও প্রক্রিয়াকরণ করতে সাহায্য করে। যখন আপনার ডেটা রিলেশনাল ডেটাবেসে সংরক্ষণ করার প্রয়োজন হয়, তখন PutDatabaseRecord এবং PutSQL প্রোসেসর দুটি ব্যবহৃত হয়। এই প্রোসেসরগুলি ডেটাবেসের সাথে যোগাযোগ করে ডেটা ইনসার্ট, আপডেট বা অন্যান্য ডেটাবেস সম্পর্কিত কাজ সম্পাদন করতে সক্ষম।
PutDatabaseRecord প্রোসেসর
PutDatabaseRecord প্রোসেসরটি ব্যবহার করে আপনি রেকর্ড বেসড ডেটা (যেমন, CSV, JSON বা Avro রেকর্ড) রিলেশনাল ডেটাবেসে সন্নিবেশ করতে পারেন। এটি একটি খুবই কার্যকরী প্রোসেসর, যখন আপনি ডেটাবেসে ডেটা ইনসার্ট বা আপডেট করতে চান এবং আপনার কাছে রেকর্ডের স্ট্রাকচার (যেমন, কলাম নাম এবং টাইপ) ইতিমধ্যে আছে।
PutDatabaseRecord কনফিগারেশন
ডেটাবেস কানেকশন:
প্রথমে আপনাকে একটি ডেটাবেস কানেকশন পুল কনফিগার করতে হবে, যাতে নিফাই ডেটাবেসের সাথে যোগাযোগ করতে পারে। এই কাজের জন্যDBCPConnectionPoolবাDatabaseConnectionPoolব্যবহার করা যেতে পারে।কনফিগারেশন:
Database Connection Pooling Service: এটি ডেটাবেসের সাথে কানেকশন পরিচালনা করবে।Table Name: আপনি কোন টেবিলের মধ্যে ডেটা ইনসার্ট করতে চান তা নির্ধারণ করতে হবে।
- Record Reader এবং Record Writer:
রেকর্ড ডেটা প্রক্রিয়াকরণ করতে আপনাকে একটি রেকর্ড রিডার এবং রেকর্ড রাইটার কনফিগার করতে হবে, যা ডেটাকে সঠিকভাবে রিড এবং রাইট করবে। সাধারণত, JSON, CSV, বা Avro ফাইলের জন্যJsonTreeReader,CSVReader, বাAvroReaderব্যবহার করা হয়। - ডেটা মডেল:
রেকর্ড ডেটা ইনসার্ট করার জন্য, টেবিলের স্কিমা বা কলাম নামের সাথে মিলে এমন একটি ডেটা মডেল তৈরি করতে হবে।
উদাহরণ:
PutDatabaseRecord
|-> RecordReader (CSVReader)
|-> Database Connection Pooling Service (DBCPConnectionPool)
কনফিগারেশন প্যারামিটার:
Database Connection Pooling Service: এখানে আপনি ডেটাবেস কানেকশন পুলের সেটিংস নির্ধারণ করবেন।Table Name: টেবিলের নাম যেটাতে ডেটা ইনসার্ট করতে চান।Record ReaderএবংRecord Writer: রেকর্ড ফর্ম্যাট কনফিগারেশন (যেমন JSON, CSV, বা Avro)।
PutSQL প্রোসেসর
PutSQL প্রোসেসরটি ডেটাবেসে SQL কুয়েরি ব্যবহার করে ডেটা ইনসার্ট, আপডেট বা ডিলিট করতে ব্যবহৃত হয়। এটি ব্যবহার করে আপনি সরাসরি SQL কুয়েরি চালাতে পারেন, যেমন INSERT, UPDATE, বা DELETE কুয়েরি।
PutSQL কনফিগারেশন
- SQL কুয়েরি:
আপনি SQL কুয়েরি কনফিগার করতে হবে, যা ডেটাবেসের মধ্যে কার্যকর হবে। এটি সাধারণত SQL স্টেটমেন্টের মাধ্যমে ইনপুট হিসেবে নেয়। - Database Connection Pooling Service:
একইভাবে,PutSQLপ্রোসেসরও ডেটাবেস কানেকশন ব্যবস্থাপনা করার জন্যDBCPConnectionPoolবা অন্যান্য কানেকশন পুল সার্ভিস ব্যবহার করে। এটি নিশ্চিত করে যে প্রোসেসরটি ডেটাবেসে সঠিকভাবে যোগাযোগ করছে। - Input FlowFile:
FlowFile এর মাধ্যমে আপনি কুয়েরি পরিচালনা করতে পারবেন। প্রোসেসরটি FlowFile এর মধ্যে থাকা ডেটার উপর ভিত্তি করে SQL কুয়েরি চালাবে।
উদাহরণ:
PutSQL
|-> Database Connection Pooling Service (DBCPConnectionPool)
|-> SQL Query (INSERT INTO users (id, name) VALUES (:id, :name))
কনফিগারেশন প্যারামিটার:
Database Connection Pooling Service: ডেটাবেস কানেকশন পুলের কনফিগারেশন।SQL Statement: SQL কুয়েরি যা ইনপুট FlowFile এর উপর ভিত্তি করে চালানো হবে। আপনি এখানে প্রপার্টি প্লেসহোল্ডার ব্যবহার করতে পারেন (যেমন,:id,:name)।
PutDatabaseRecord এবং PutSQL এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | PutDatabaseRecord | PutSQL |
|---|---|---|
| ডেটার উৎস | রেকর্ড ফরম্যাট (CSV, JSON, Avro) | SQL কুয়েরি ব্যবহার করে ডেটা ইনসার্ট বা আপডেট করা |
| ডেটার ফরম্যাট | রেকর্ড (Structured Data) | SQL কুয়েরি (Unstructured Data) |
| ডেটা ইনসার্ট কৌশল | ডেটা মডেল বা স্কিমা অনুযায়ী রেকর্ড ইনসার্ট করা | কাস্টম SQL কুয়েরি ব্যবহার করে ডেটা ইনসার্ট করা |
| ডেটাবেস সংযোগ | ডেটাবেস কানেকশন পুল সিস্টেম ব্যবহার করা | ডেটাবেস কানেকশন পুল সিস্টেম ব্যবহার করা |
সারাংশ
অ্যাপাচি নিফাইতে ডেটাবেসে ডেটা সংরক্ষণের জন্য দুটি গুরুত্বপূর্ণ প্রোসেসর হলো PutDatabaseRecord এবং PutSQL। PutDatabaseRecord রেকর্ড ফরম্যাটে ডেটা ইনসার্ট করার জন্য উপযুক্ত, যেখানে ডেটাবেস টেবিলের কলাম অনুযায়ী রেকর্ড ইনপুট করা হয়। অপরদিকে, PutSQL SQL কুয়েরি ব্যবহার করে সরাসরি ডেটাবেসে ডেটা ইনসার্ট বা আপডেট করার জন্য ব্যবহৃত হয়। এদের ব্যবহারে, ডেটাবেসে ডেটা সংরক্ষণ করা খুবই সহজ এবং কার্যকরী হয়, এবং এটি নিফাই ফ্লোতে আরও নমনীয়তা প্রদান করে।
Read more